package control.juego;

import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;

import modelo.delictivas.Robo;
import modelo.geografia.Mapa;
import modelo.juego.Juego;
import modelo.policiales.Interpol;

public class ControladorJuego {

	private Juego juego;
	
	public ControladorJuego(Juego juego){
		this.juego = juego;
	}

	public void identificarJugador(String nombreJugador) throws Exception {
		if(this.juego.existeJugador(nombreJugador))
		{
			this.juego.identificarJugador(nombreJugador);
		}
		
	}
	
	public void crearJugador(String nombre) throws Exception {
		this.juego.crearJugador(nombre);
	}

	public boolean partidaIniciada(){
		return (this.juego.getJugadorActual().tieneInvestigacion());
	}

	public void iniciarPartida() throws Exception {
		//Reinicio el mapa antes de iniciar una uneva invetigacion
		Mapa.reiniciar();
		Robo robo = this.juego.getOrganizacionDelictiva().generarRoboSegunRango(this.juego.getJugadorActual().getRango());
		this.juego.getInterpol().asignarRoboAPolicia(this.juego.getJugadorActual(), robo, Interpol.TIEMPOINVESTIGACION);
	}

	public void verificarAscenso() throws Exception {
		this.juego.getInterpol().verificarAscenso(this.juego.getJugadorActual());
	}

	public void finalizarPartida() throws ParserConfigurationException, TransformerException {
		this.juego.finalizarJuego();
		this.juego.guardar();
	}

	public void guardarPartida() throws ParserConfigurationException, TransformerException {
		this.juego.guardar();
	}

	
	public void continuarPartida() throws Exception {
		//Reinicio el mapa antes de continuar una invetigacion
		Mapa.reiniciar();
		this.juego.getJugadorActual().cargarInvestigacion();
		
	}

}
